package mysql8学习.高级.第11章_数据库的设计规范之范式;

/**
 * 2.范式  在关系型数据库中，关于数据表设计的基本原则、规则就称为范式。
 * 2.1 范式简介
 * 在关系型数据库中，关于数据表设计的基本原则、规则就称为范式。
 * 可以理解为，一张数据表的设计结构需要满足的某种设计标准的级别。
 * 要想设计一个结构合理的关系型数据库，必须满足一定的范式。
 * 范式的英文名称是Normal Form ，简称NF。
 * 它是英国人E.F.Codd在上个世纪70年代提出关系数据库模型后总结出来的。
 * 范式是关系数据库理论的基础，也是我们在设计数据库结构过程中所要遵循的规则和指导方法。
 *
 * 2.2 范式都包括哪些
 * 目前关系型数据库有六种常见范式，按照范式级别，从低到高分别是:
 * 第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF) 、
 * 第四范式(4NF)和第五范式(5NF,又称完美范式)。
 *
 * 数据库的范式设计越高阶，冗余度就越低，同时高阶的范式一定符合低阶范式的要求，
 * 满足最低要求的范式是第一范式(1NF)。
 * 在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF) ，
 * 其余范式以次类推。一般来说，在关系型数据库设计中，最高也就遵循到BCNF，普遍还是3NF。
 * 但也不绝对,有时候为了提高某些查询性能，我们还需要破坏范式规则，也就是反规范化。
 *
 * 2.3 键和相关属性的概念
 * 范式的定义会使用到主键和候选键，数据库中的键(Key) 由一个或者多个属性组成。
 * 数据表中常用的几种键和属性的定义:
 * ● 超键:能唯一标识元组的属性集叫做超键。
 * ● 候选键:如果超键不包括多余的属性,那么这个超键就是候选键。
 * ● 主键:用户可以从候选键中选择一 个作为主键。
 * ● 外键:如果数据表R1中的某属性集不是R1的主键，而是另一个数据表R2的主键，
 *    那么这个属性集就是数据表R1的外键。
 * ● 主属性:包含在任一候选键中的属性称为主属性。
 * ● 非主属性:与主属性相对，指的是不包含在任何一个候选键中的属性。
 *   通常，我们也将候选键称之为“码”,把主键也称为“主码”。因为键可能是由多个属性组成的,
 *   针对单个属性,我们还可以用主属性和非主属性来进行区分。
 *
 * 举例：
 * 这里有两个表:
 * 球员表(player):球员编号|姓名|身份证号|年龄|球队编号
 * 球队表(team) :球队编号|主教练|球队所在地
 * ●超键:对于球员表来说，超键就是包括球员编号或者身份证号的任意组合，
 *  比如(球员编号) (球员编号,姓名) (身份证号, 年龄)等。
 *  //因为球员编号和身份证号都是唯一的，只要和他俩组合都叫超键
 * ●候选键:就是最小的超键，对于球员表来说,候选键就是(球员编号)或者(身份证号)唯一的。
 * ●主键:我们自己选定，也就是从候选键中选择一个，比如(球员编号)。
 * ●外键:球员表中的球队编号。//球员表的球队编号  在球队表球队编号相对应
 * ●主属性、非主属性:在球员表中，主属性是(球员编号) (身份证号) 唯一的,
 * 其他的属性(姓名) (年龄) (球队编号)都是非主属性  不唯一的。
 *
 */
public class B_范式介绍 {
}
